import os
import zipfile
import sys

def unzip_all_zips(directory):
    """
    解压指定目录下的所有zip文件，每个zip文件解压到以zip文件名命名的文件夹中
    
    Args:
        directory: 要搜索zip文件的目录路径
    """
    # 检查目录是否存在
    if not os.path.exists(directory):
        print(f"错误：目录 '{directory}' 不存在")
        return
    
    # 检查是否是目录
    if not os.path.isdir(directory):
        print(f"错误：'{directory}' 不是一个目录")
        return
    
    print(f"正在扫描目录：{directory}")
    
    # 遍历目录中的所有文件
    for filename in os.listdir(directory):
        # 检查文件是否以.zip结尾
        if filename.lower().endswith('.zip'):
            zip_path = os.path.join(directory, filename)
            
            # 获取不带.zip后缀的文件名作为文件夹名
            folder_name = filename[:-4]  # 去掉.zip后缀
            extract_path = os.path.join(directory, folder_name)
            
            try:
                print(f"正在解压：{filename}")
                print(f"目标文件夹：{extract_path}")
                
                # 创建目标文件夹（如果不存在）
                os.makedirs(extract_path, exist_ok=True)
                
                # 解压zip文件
                with zipfile.ZipFile(zip_path, 'r') as zip_ref:
                    zip_ref.extractall(extract_path)
                
                print(f"成功解压：{filename} -> {extract_path}")
                print("-" * 50)
                
            except zipfile.BadZipFile:
                print(f"错误：{filename} 不是有效的zip文件")
            except Exception as e:
                print(f"解压 {filename} 时发生错误：{str(e)}")
    
    print("所有zip文件处理完成！")

if __name__ == "__main__":
    # 获取命令行参数，如果没有提供参数则使用默认目录
    if len(sys.argv) > 1:
        target_directory = sys.argv[1]
    else:
        target_directory = r"E:\新系统建议安装的EXE\杂类"

    print(f"目标目录：{target_directory}")
    unzip_all_zips(target_directory)